<?php
/**
 * Created by PhpStorm.
 * User: cyh
 * Date: 2017/5/15
 * Time: 13:39
 */

namespace app\db\controller;

use app\db\model\WordInf;
use Common\Smtp;
use think\Controller;
use think\Db;
use think\Exception;

class Api extends Controller
{
    private  $APIurl="http://fanyi.youdao.com/openapi.do?keyfrom=cyhapp&key=1345740241&type=data&doctype=json&version=1.1&q=";
    function AlertFromAip()
    {
        $record=Db::table('WordInf')->where()->select();
        $d=new WordInf();
        try {
            for ($i = 0; $i < count($record); $i++) {
                $d->update($this->Getoneinf($this->array_to_object($record[$i])));
            }
            return true;
        }
        catch (Exception $e)
        {
            return $e->getMessage();

        }
    }
    function Getoneinf($word)
    {
        // 初始化一个 cURL 对象
        $curl = curl_init();
        // 设置你需要抓取的URL
        curl_setopt($curl, CURLOPT_URL, $this->APIurl.$word->W_Name);
        // 设置header 响应头是否输出
        // curl_setopt($curl, CURLOPT_HEADER, 1);
        // 设置cURL 参数，要求结果保存到字符串中还是输出到屏幕上。
        // 1如果成功只将结果返回，不自动输出任何内容。如果失败返回FALSE
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // 运行cURL，请求网页
        $data = curl_exec($curl);
        // 关闭URL请求
        curl_close($curl);
        // 显示获得的数据
        $inf=json_decode($data);
        $tranarray=$inf->basic->explains;
        $transtr=implode('|',$tranarray);
        $word->W_Chinese=$transtr;

        $ybstr=$inf->basic->phonetic;
        $word->W_SoundMark=$ybstr;

        $jstr=$inf->web[1]->key;
        $word->W_ExSentence=$jstr;

        $carr=$inf->web[1]->value;
        $cstr=implode('|',$carr);
        $word->W_CExSentence=$cstr;
        //var_dump($cstr);//例句翻译

        //var_dump($transtr);//翻译
        //echo "<br/>";

        //var_dump($ybstr);//音标
        //echo "<br/>";

        //var_dump($jstr);//例句
        //echo "<br/>";
        return $word;
    }
    function Translate()
    {
        $str=$_POST["Translate"];
        try {
            if ($str!=null) {
                $curl = curl_init();
                // 设置你需要抓取的URL
                curl_setopt($curl, CURLOPT_URL, $this->APIurl.$str);
                // 1如果成功只将结果返回，不自动输出任何内容。如果失败返回FALSE
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
                // 运行cURL，请求网页
                $data = curl_exec($curl);
                // 关闭URL请求
                curl_close($curl);
                // 显示获得的数据
                var_dump($data);
               //var_dump(json_decode($data)->translation[0]);
                //return json_decode($data)->query;
            }
        }
        catch(Exception  $ex)
            {
                return $ex->getMessage();
            }
    }
    private function array_to_object($arr) {
        if (gettype($arr) != 'array') {
            return;
        }
        foreach ($arr as $k => $v) {
            if (gettype($v) == 'array' || getType($v) == 'object') {
                $arr[$k] = (object)$this->array_to_object($v);
            }
        }
        return (object)$arr;
    }
    public function Sendcode()
    {
        try
        {
            $adress=$_POST['email'];
            //生成验证码
            $code="";
            for ($i=0;$i<6;$i++)
            {
                $code.=rand(0,9);
            }

            $smtpserver = "smtp.163.com";//SMTP服务器
            $smtpserverport =25;//SMTP服务器端口
            $smtpusermail = "c475570815@163.com";//SMTP服务器的用户邮箱
            $smtpemailto = $adress;//发送给谁
            $smtpuser = "c475570815";//SMTP服务器的用户帐号(或填写new2008oh@126.com，这项有些邮箱需要完整的)
            $smtppass = "yxdnmm123321";//SMTP服务器的用户密码
            $mailtitle = '百词斩账号注册';//邮件主题
            $mailcontent = '<h1>'.'你的注册验证码为'.$code.'<h1>';//邮件内容
            $mailtype = "HTML";//邮件格式（HTML/TXT）,TXT为文本邮件
            //************************ 配置信息 ****************************
            $smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
            $smtp->debug = false;//是否显示发送的调试信息
            $state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
            if($state=="")
                return "error";
            else {
                return $code;
            }
        }
        catch (Exception $Ex)
        {
                 return $Ex->getMessage();
        }
    }
}
